package org.comple.erp.remote.base;

import org.comple.erp.utils.AjaxResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

public interface StaffRemote {
    /**
     * 返回AjaxResult：saleStaffList
     *
     * @return
     */
    @GetMapping("getSaleStaff")
    AjaxResult selectSaleStaff(@RequestParam("companyCode") String companyCode);

    /**
     * 根据权限id获取员工列表（权限id：公共模块中定义了权限常量：PermissionConstant）
     *
     * @param companyCode
     * @param permissionId
     * @return
     */
    @GetMapping("getStaffByPermissionId")
    AjaxResult selectStaffByPermissionId(@RequestParam("permissionId") String permissionId, @RequestParam("companyCode") String companyCode);

    /**
     * 根据权限id列表查找经理角色的员工（拥有某个业务权限（采购、销售、仓库、财务、人事） + 审核权限）
     * （权限id：公共模块中定义了权限常量：PermissionConstant）
     * 使用方式：当需要查询采购经理，则需要业务权限采购的权限id + 审核权限id，传入集合中
     *
     * @param companyCode
     * @param permissionsIds
     * @return
     */
    @GetMapping("getStaffByPermissionIds")
    AjaxResult selectStaffByPermissionIds(@RequestParam("permissionsIds") List<String> permissionsIds, @RequestParam("companyCode") String companyCode);

    /**
     * 获取具有某个角色的员工（参数：roleId，companyCode，返回：staffList）
     *
     * @param roleId
     * @return
     */
    @GetMapping("getStaffByRoleId")
    AjaxResult selectStaffByRoleId(@RequestParam("roleId") String roleId, @RequestParam("companyCode") String companyCode);

    /**
     * 获取员工信息包括角色id 权限列表(传入员工id) 返回: staff
     *
     * @param id
     * @return
     */
    @GetMapping("getStaff")
    AjaxResult selectById(@RequestParam("id") String id, @RequestParam("companyCode") String companyCode);
}
